import $axios, { Result } from '@/plugins/axios'
import { AxiosResponse } from 'axios'
import { PageParam } from '@/type'

/**
 * 分页查询登记任务
 * @param pageParam
 */
export async function getTaskByPage(
  pageParam: PageParam,
): Promise<AxiosResponse<Result>> {
  return await $axios.post('/supervision-api/task/getTaskByPage', pageParam)
}

/**
 * 新增任务
 * @param data
 */
export async function addTask(data: any): Promise<AxiosResponse<Result>> {
  return await $axios.post('/supervision-api/task/addTask', data)
}

/**
 * 修改任务
 * @param data
 */
export async function modifyTask(data: any): Promise<AxiosResponse<Result>> {
  return await $axios.post('/supervision-api/task/modifyTask', data)
}

/**
 * 在已有任务下新增一个事项
 * @param data
 */
export async function addMatter(data: any): Promise<AxiosResponse<Result>> {
  return await $axios.post('/supervision-api/task/addMatter', data)
}

/**
 * 修改事项（期限、牵头单位、抄送单位）
 * @param data
 */
export async function modifyMatter(data: any): Promise<AxiosResponse<Result>> {
  return await $axios.post('/supervision-api/task/modifyMatter', data)
}

/**
 * 删除事项（期限、牵头单位、抄送单位、文件））
 * @param data.taskId 任务ID
 * @param data.ids 事项ID（多个用逗号分隔）
 */
export async function deleteMatter(data: {
  taskId: number
  ids: string
}): Promise<AxiosResponse<Result>> {
  return await $axios.delete('/supervision-api/task/deleteMatter', {
    params: {
      data,
    },
  })
}

/**
 * 删除任务
 * @param ids
 */
export async function deleteTask(ids: string): Promise<AxiosResponse<Result>> {
  return await $axios.delete(`/supervision-api/task/deleteTask/${ids}`)
}

/**
 * 查询任务下的事项列表
 * @param taskId 任务ID
 */
export async function getMatterList(
  taskId: number,
): Promise<AxiosResponse<Result>> {
  return await $axios.get(`/supervision-api/task/getMatterList/${taskId}`)
}

/**
 * 审批当前任务
 * @param data
 */
export async function submitTask(data: {
  type: 3 | 4
  taskId: number
  processOpinion: string
}): Promise<AxiosResponse<Result>> {
  return await $axios.post('/supervision-api/task/submitTask', data)
}

/**
 * 根据id查询详情
 * @param id
 */
export async function getTaskDetailById(
  taskId: number,
): Promise<AxiosResponse<Result>> {
  return await $axios.get(`/supervision-api/task/getTaskDetail/${taskId}`)
}
